package com.taokatao.cardmee.db.upgrade;

import com.taokatao.cardmee.db.CardDao;
import com.taokatao.cardmee.db.MessageDao;

import org.greenrobot.greendao.database.Database;

import java.util.Date;

// 2.3.0
public class MigrationHelper2100000004 extends AbstractDBMigratorHelper {

    /*
     * 1、改变内容 Card表新增字段 sid(Long) 商家分店的id , sname(String) 商家分店名称 , mCardId(Long)[后台卡列表返回mCardId值不唯一]
     * 2、新增表 Message
     */
    @Override
    public void onUpgrade(Database db) {
        Date alterDate = new Date();
        // step 1 将表名改为临时表
        createTemporaryTable(db, CardDao.TABLENAME, alterDate);
        // step 2 创建新表
        CardDao.createTable(db, false);
        // step 3 导入数据
        final String oldC = "_id, NO, ALIAS_NAME, GRADE, TYPE, ICON, USE_NUM, USE_RULE, IS_MY_CARD, BUSINESS_ID, BUSINESS_NAME, POSITIVE_ICON, BACK_ICON, REMARK, USERNAME, COLLECT_ID, HEAD_IMG_URL, ANOTHER_BUSINESS, BU_PIC, CARD_USER, CARD_TEL, BARCODE_STATUS, BARCODE_FORMAT, APP_SCAN_TIME, PRIMARY_COLOR, GRADE_NAME, SHARE_TYPE";
        final String newC = oldC;
        dataTransferFromTemporary(db, CardDao.TABLENAME, alterDate, oldC, newC);
        // step 4 删除临时表
        dropTemporaryTable(db, CardDao.TABLENAME, alterDate);

        MessageDao.createTable(db, true);
    }
}

//    /**
//     * 会员卡id
//     */
//    @Id private Long mCardId;
//
//    /**
//     * 会员卡号
//     */
//    @Property(nameInDb = "NO") private String mCardNo;
//
//    /**
//     * 会员卡别名
//     */
//    @Property(nameInDb = "ALIAS_NAME") private String mCardAliasName;
//    /**
//     * 会员卡等级，1：白银会员，2：黄金会员......
//     */
//    @Property(nameInDb = "GRADE") private Integer mCardGrade;
//    /**
//     * 会员卡类别
//     */
//    @Property(nameInDb = "TYPE") private String mCardType;
//    /**
//     * 会员卡图标
//     */
//    @Property(nameInDb = "ICON") private String mCardIcon;
//    /**
//     * 使用次数
//     */
//    @Property(nameInDb = "USE_NUM") private Integer useNum;
//    /**
//     * 使用规则
//     */
//    @Property(nameInDb = "USE_RULE") private String useRule;
//    /**
//     * 0：收藏的，1：属于我的
//     */
//    @Property(nameInDb = "IS_MY_CARD") private String isMyCard;
//    public static final String STATUS_MY_CARD = "1";
//    public static final String STATUS_FAVORITE_CARD = "0";
//    /**
//     * 商家id
//     */
//    @Property(nameInDb = "BUSINESS_ID") private Long businessId;
//    /**
//     * 商家名称
//     */
//    @Property(nameInDb = "BUSINESS_NAME") private String businessName;
//    /**
//     * 会员卡正面图片
//     */
//    @Property(nameInDb = "POSITIVE_ICON") private String positiveIcon;
//    /**
//     * 会员卡背面图片
//     */
//    @Property(nameInDb = "BACK_ICON") private String backIcon;
//    /**
//     * 备注
//     */
//    @Property(nameInDb = "REMARK") private String remark;
//    /**
//     * 分享者昵称
//     */
//    @Property(nameInDb = "USERNAME") private String userName;
//    /**
//     * 收藏ID
//     */
//    @Property(nameInDb = "COLLECT_ID") private String collectId;
//    /**
//     * 分享者头像
//     */
//    @Property(nameInDb = "HEAD_IMG_URL") private String headImgUrl;
//    /**
//     * 其他商家别名(只对其他商家有效)
//     */
//    @Property(nameInDb = "ANOTHER_BUSINESS") private String anotherBusiness;
//    /**
//     * 其他商家图片(只对其他商家有效)
//     */
//    @Property(nameInDb = "BU_PIC") private String buPic;
//    /**
//     * 持卡人姓名
//     */
//    @Property(nameInDb = "CARD_USER") private String cardUser;
//    /**
//     * 持卡人手机号码
//     */
//    @Property(nameInDb = "CARD_TEL") private String cardTel;
//    /**
//     * 商家码是否有码
//     */
//    @Property(nameInDb = "BARCODE_STATUS") private String barcodeStatus;
//    /**
//     * 商家码类型
//     */
//    @Property(nameInDb = "BARCODE_FORMAT") private String barcodeFormat;
//    /**
//     * 点击次数热度(app本地)
//     */
//    @Property(nameInDb = "APP_SCAN_TIME") private Integer appScanTime;
//    /**
//     * 主题背景色
//     */
//    @Property(nameInDb = "PRIMARY_COLOR") private String backColor;
//    /**
//     * 卡等级(例如爱奇艺金卡会员)
//     */
//    @Property(nameInDb = "GRADE_NAME") private String gradeName;
//
//    /**
//     * 分享类型 (值为9时，卡不能够分享)
//     */
//    @Property(nameInDb = "SHARE_TYPE") private Integer shareType;